package br.ufpb.di.knowledgetv.arff;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.ufpb.di.knowledgetv.formulario.CriadorDePerfis;
import br.ufpb.di.knowledgetv.instancias.Perfil;
import br.ufpb.di.knowledgetv.persistencia.GerenciadorDeDados;
import br.ufpb.di.knowledgetv.util.Util;

@SuppressWarnings("serial")
public class ArffServlet extends HttpServlet {
	
	public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException{
		
		//repopularBanco(100);
		
		List<Perfil> usuarios = GerenciadorDeDados.listar();
		
		PrintWriter out = resp.getWriter();
		
		out.println("@RELATION usuarios");
		
		out.println();
		
		out.println("@ATTRIBUTE sexo " + Util.sexoNominal());
		out.println("@ATTRIBUTE faixaEtaria " + Util.faixaEtariaNominal());
		out.println("@ATTRIBUTE estadoCivil " + Util.estadoCivilNominal());
		out.println("@ATTRIBUTE escolaridade " + Util.escolaridadeNominal());
		out.println("@ATTRIBUTE rendaFamiliar " + Util.rendaNominal());
		out.println("@ATTRIBUTE numeroDeFilhos " + Util.numeroDeFilhosNominal());
		out.println("@ATTRIBUTE class " + Util.classificacaoNominal());
		
		out.println();
		
		out.println("@DATA");
		for( Perfil u : usuarios )
			out.println( u.getSexo() +","+ u.getFaixaEtaria() +","+ 
					u.getEstadoCivil() +","+ u.getEscolaridade() +","+
					u.getRenda() +","+ u.getNumeroFilhos() +","+ u.getClassificacao() );
		
	}
	
	public void repopularBanco(int numRegistros){
		GerenciadorDeDados.limpar();
		for(int i = 0; i < numRegistros; i++)
			GerenciadorDeDados.persistir( CriadorDePerfis.novoPerfil() );
	}
		
}
